The advent of global communications networks such as the Internet has served as a catalyst for the convergence of computing power and services in portable computing devices. Given the advances in storage and computing power of such portable wireless devices, they now are capable of handling many types of disparate data types such as images, voice, video clips, audio data, and textual data, for example. This data is typically utilized separately for specific purposes. Network operators and providers (both cellular as well as non-cellular) have long realized that mobile communications is the next frontier that can provide huge returns. Thus, a cellular customer can now purchase a cell phone that allows access to multimedia that is available on the Internet. In another example, a cell phone user can also message an IP node (another user) on the Internet, and read e-mail from the user's e-mail provider based on the Internet. Similarly, telephony capability for computing devices also provides lucrative opportunities.
In an IP-based client-server telecommunications context (e.g., VoIP—voice over Internet protocol), telephone call processing/forwarding rules have traditionally been implemented server side. This requires the server to have prior knowledge of the rules that have been set by the client. Server-side forwarding has worked in the past because the rules that the client could apply were simple and easy to implement.
In the future, however, there would be many instances where the server would be incapable of understanding or applying call processing rules without the help of additional assistance from the client. This can be especially significant where client deployments and rollouts are much more frequent than server deployments, which is more likely to be the case.
Moreover, it can easily be imagined that users will be able to purchase new client software off the shelf and use it with existing server infrastructures, since client applications are quicker to develop and deploy, and evolve faster than server applications. Thus, existing signaling mechanisms in, for example, SIP (session initiation protocol) are inadequate or undefined to help solve the problem. Another problem with existing signaling protocols is that there is no way for the client to specify to the server that the call should be processed by proxy.